#lang rosetta-racket


(provide test-point
         test-point-coordinates)


(define test-point
  (case-lambda
    ((c)
     (lift
      (thunk (displayln (format "Point ~A" c)))
      (point c)))
    ((x y z)
     (lift
      (thunk (displayln (format "Point ~A" (xyz x y z))))
      (point x y z)))))

(define (test-point-coordinates c)
  (displayln "Point coordinates")
  (let ((res-c (point-c (point c))))
    (if (=c c res-c)
        res-c
        (error 'test-point-coordinates))))